package org.jeecg.modules.business.entity;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: 协议单位
 * @Author: jeecg-boot
 * @Date:   2023-03-25
 * @Version: V1.0
 */
@Data
@TableName("bus_market_agreement_unit_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="bus_market_agreement_unit_info对象", description="协议单位")
public class BusMarketAgreementUnit implements Serializable {
    private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
	/**关联租户*/
	@Excel(name = "关联租户", width = 15)
    @ApiModelProperty(value = "关联租户")
    @Dict(dictTable = "bus_hotel_info", dicCode = "id", dicText = "name")
    private String tenantId;
	/**关联酒店*/
	@Excel(name = "关联酒店", width = 15)
    @ApiModelProperty(value = "关联酒店")
    private String hotelId;
    /**酒店名称*/
    private transient String hotelName;

    /**客户全称*/
    @Excel(name = "客户全称", width = 15)
    @ApiModelProperty(value = "客户全称")
    private String customerName;
	/**客户简称*/
	@Excel(name = "客户简称", width = 15)
    @ApiModelProperty(value = "客户简称")
    private String customerShortName;
	/**客户编号*/
	@Excel(name = "客户编号", width = 15)
    @ApiModelProperty(value = "客户编号")
    private String customerNo;
	/**联系人*/
	@Excel(name = "联系人", width = 15)
    @ApiModelProperty(value = "联系人")
    private String contactsName;
	/**系统类型*/
	@Excel(name = "系统类型", width = 15)
    @ApiModelProperty(value = "系统类型")
    @Dict(dictTable = "bus_dict_item_info", dicCode = "id", dicText = "item_text")
    private String systemType;
	/**客户类型*/
	@Excel(name = "客户类型", width = 15)
    @ApiModelProperty(value = "客户类型")
    @Dict(dictTable = "bus_dict_item_info", dicCode = "id", dicText = "item_text")
    private String customerType;
	/**销售人员*/
	@Excel(name = "销售人员", width = 15)
    @ApiModelProperty(value = "销售人员")
    @Dict(dictTable = "bus_sales_person_info", dicCode = "id", dicText = "name")
    private String sellerId;
	/**手机号*/
	@Excel(name = "手机号", width = 15)
    @ApiModelProperty(value = "手机号")
    private String phone;
	/**客户状态*/
	@Excel(name = "客户状态", width = 15)
    @ApiModelProperty(value = "客户状态")
    @Dict(dictTable = "bus_dict_item_info", dicCode = "id", dicText = "item_text")
    private String status;
	/**地区*/
	@Excel(name = "地区", width = 15)
    @ApiModelProperty(value = "地区")
    private String region;
	/**邮编*/
	@Excel(name = "邮编", width = 15)
    @ApiModelProperty(value = "邮编")
    private String postalCode;
	/**地址*/
	@Excel(name = "地址", width = 15)
    @ApiModelProperty(value = "地址")
    private String address;
	/**公司电话*/
	@Excel(name = "公司电话", width = 15)
    @ApiModelProperty(value = "公司电话")
    private String companyPhone;
	/**传真*/
	@Excel(name = "传真", width = 15)
    @ApiModelProperty(value = "传真")
    private String fax;
	/**客户来源*/
	@Excel(name = "客户来源", width = 15)
    @ApiModelProperty(value = "客户来源")
    @Dict(dictTable = "bus_dict_item_info", dicCode = "id", dicText = "item_text")
    private String customerSource;
	/**主页*/
	@Excel(name = "主页", width = 15)
    @ApiModelProperty(value = "主页")
    private String homepage;
	/**邮箱*/
	@Excel(name = "邮箱", width = 15)
    @ApiModelProperty(value = "邮箱")
    private String email;
	/**客户行业*/
	@Excel(name = "客户行业", width = 15)
    @ApiModelProperty(value = "客户行业")
    @Dict(dictTable = "bus_dict_item_info", dicCode = "id", dicText = "item_text")
    private String customerIndustry;
	/**审核状态*/
	@Excel(name = "审核状态", width = 15)
    @ApiModelProperty(value = "审核状态")
    @Dict(dicCode = "agreement_check_status")
    private Integer checkStatus;
	/**审核时间*/
	@Excel(name = "审核时间", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "审核时间")
    private Date checkTime;
	/**审核人*/
	@Excel(name = "审核人", width = 15)
    @ApiModelProperty(value = "审核人")
    private String checkBy;
	/**审核备注*/
	@Excel(name = "审核备注", width = 15)
    @ApiModelProperty(value = "审核备注")
    private String checkRemarks;
	/**账户编号*/
	@Excel(name = "账户编号", width = 15)
    @ApiModelProperty(value = "账户编号")
    private String accountNo;
	/**账户状态*/
	@Excel(name = "账户状态", width = 15)
    @ApiModelProperty(value = "账户状态")
    @Dict(dicCode = "agreement_status")
    private Integer accountStatus;
	/**已用额度*/
	@Excel(name = "已用额度", width = 15)
    @ApiModelProperty(value = "已用额度")
    private BigDecimal amountUsed;
	/**余额*/
	@Excel(name = "余额", width = 15)
    @ApiModelProperty(value = "余额")
    private BigDecimal balance;
	/**记账限额*/
	@Excel(name = "记账限额", width = 15)
    @ApiModelProperty(value = "记账限额")
    private BigDecimal bookkeeping;
	/**不允许该单位记账*/
	@Excel(name = "不允许该单位记账", width = 15)
    @ApiModelProperty(value = "不允许该单位记账")
    private Integer bookkStatus;

    /**是否返佣*/
    @Excel(name = "是否返佣", width = 15)
    @ApiModelProperty(value = "是否返佣")
    private Integer commission;

    /**前台是否查询*/
    @Excel(name = "前台是否查询", width = 15)
    @ApiModelProperty(value = "前台是否查询")
    private Integer reception;
	/**备注*/
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remarks;
	/**删除状态*/
	@Excel(name = "删除状态", width = 15)
    @ApiModelProperty(value = "删除状态")
    @TableLogic
    private Integer delFlag;
	/**createBy*/
    @ApiModelProperty(value = "createBy")
    private String createBy;
	/**createTime*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "createTime")
    private Date createTime;
	/**updateBy*/
    @ApiModelProperty(value = "updateBy")
    private String updateBy;
	/**updateTime*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "updateTime")
    private Date updateTime;
    /**离店时间*/
    @Excel(name = "离店时间", width = 15)
    @ApiModelProperty(value = "离店时间")
    private String leaveTime;

    @TableField(exist = false)
    @ApiModelProperty(value = "关联的协议")
    private BusMarketAgreementCustomer marketAgreementCustomer;
}
